Apache Ant একটি ওপেন সোর্স বিল্ড টুল যা প্রধানত Java প্রজেক্টের বিল্ড, টেস্টিং এবং ডিপ্লয়মেন্টের জন্য ব্যবহৃত হয়। এর মধ্যে একটি শক্তিশালী টাস্ক হল <exec>
টাস্ক, যা আপনাকে external programs বা কমান্ড লাইনের প্রোগ্রাম চালাতে সহায়তা করে। এটি আপনার বিল্ড প্রক্রিয়ার মধ্যে বাহ্যিক কমান্ড বা স্ক্রিপ্ট (যেমন ব্যাচ স্ক্রিপ্ট, শেল স্ক্রিপ্ট, বা অন্য যেকোনো এক্সটার্নাল প্রোগ্রাম) চালানোর সুযোগ দেয়।
এই টাস্কটি বিভিন্ন পরিস্থিতিতে ব্যবহার করা যেতে পারে, যেমন ডিপ্লয়মেন্ট প্রক্রিয়া, টেস্টিং, অথবা অন্য কোনো বহিরাগত প্রোগ্রাম বা স্ক্রিপ্ট চালানোর জন্য। আপনি যেমন JAR ফাইল রান করা, নেটওয়ার্ক অ্যাপ্লিকেশন চালানো বা বাহ্যিক স্ক্রিপ্ট চালানোর জন্য ব্যবহার করতে পারেন।
<exec>
টাস্কটি বাহ্যিক প্রোগ্রাম চালানোর জন্য ব্যবহৃত হয়। এটি বাহ্যিক কমান্ড বা স্ক্রিপ্ট সিস্টেমের টার্মিনাল/কমান্ড লাইনে রান করে এবং তার আউটপুট বিল্ড স্ক্রিপ্টে আনা যায়। <exec>
টাস্কটি অ্যাপাচি অ্যান্টের মধ্যে একটি খুবই কার্যকরী টাস্ক, যখন আপনাকে বিল্ড প্রক্রিয়ায় বাহ্যিক অ্যাপ্লিকেশন বা কমান্ডের ইনটিগ্রেশন করতে হয়।
true
হয়, তবে বাহ্যিক প্রোগ্রাম যদি ব্যর্থ হয়, তাহলে পুরো বিল্ড প্রক্রিয়া থেমে যাবে।true
হয়, এটি বাহ্যিক প্রোগ্রামকে নতুন থ্রেডে রান করতে দেবে, মূল প্রক্রিয়াকে ব্লক না করে।<project name="ExecTaskExample" default="run-command">
<target name="run-command">
<!-- Running an external command (example: echo) -->
<exec executable="echo">
<arg value="Hello from the exec task!"/>
</exec>
</target>
</project>
<exec>
টাস্কটি echo
কমান্ড চালাচ্ছে এবং <arg>
টাস্কের মাধ্যমে "Hello from the exec task!" আর্গুমেন্টটি প্রোগ্রামটি পাঠাচ্ছে।"Hello from the exec task!"
মেসেজটি প্রদর্শিত হবে।<project name="RunScriptExample" default="run-script">
<target name="run-script">
<!-- Running an external shell script -->
<exec executable="sh">
<arg value="scripts/myscript.sh"/>
</exec>
</target>
</project>
<exec>
টাস্কটি sh
কমান্ডের মাধ্যমে myscript.sh
স্ক্রিপ্ট চালাবে, যা scripts/
ডিরেক্টরিতে অবস্থান করছে।<project name="FailOnErrorExample" default="run-command">
<target name="run-command">
<!-- Running a command with failonerror -->
<exec executable="nonexistent-command" failonerror="true"/>
</target>
</project>
<exec>
টাস্কটি nonexistent-command
চালানোর চেষ্টা করছে, যা এক্সিস্ট করে না।failonerror="true"
ব্যবহারের ফলে, বাহ্যিক কমান্ডের ত্রুটির কারণে পুরো বিল্ড প্রক্রিয়া ব্যর্থ হবে এবং এটির জন্য একটি ত্রুটি বার্তা কনসোলে প্রদর্শিত হবে।<project name="ExecWithArgsAndDir" default="run-command">
<target name="run-command">
<!-- Running a command with arguments and directory -->
<exec executable="java" dir="build/classes">
<arg value="-classpath"/>
<arg value="."/>
<arg value="com.example.Main"/>
</exec>
</target>
</project>
<exec>
টাস্কটি java
কমান্ড চালাচ্ছে এবং com.example.Main
ক্লাসটি চালাতে -classpath
আর্গুমেন্ট ব্যবহার করছে।dir="build/classes"
দ্বারা এটি java
কমান্ডটি build/classes
ডিরেক্টরিতে চালাবে।আপনি যদি চান যে বাহ্যিক প্রোগ্রামটি আপনার প্রক্রিয়াকে ব্লক না করে চলতে থাকুক, তাহলে spawn="true"
অ্যাট্রিবিউট ব্যবহার করতে পারেন।
<project name="ExecWithSpawn" default="run-command">
<target name="run-command">
<!-- Running a command with spawn -->
<exec executable="long-running-command" spawn="true"/>
<echo message="Command is running in the background"/>
</target>
</project>
spawn="true"
ব্যবহৃত হয়েছে, যার মাধ্যমে long-running-command
কমান্ডটি একটি নতুন থ্রেডে চালানো হবে এবং মূল প্রক্রিয়া ব্লক না হয়ে echo
টাস্কটি চলবে এবং "Command is running in the background" মেসেজ কনসোলে প্রদর্শিত হবে।<exec>
Taskfailonerror
অ্যাট্রিবিউট ব্যবহার করে বাহ্যিক প্রোগ্রামের ত্রুটি ধরতে পারবেন এবং বিল্ড থামিয়ে দিতে পারবেন।<exec>
টাস্কটি অ্যাপাচি অ্যান্টে একটি অত্যন্ত শক্তিশালী টাস্ক, যা বাহ্যিক প্রোগ্রাম বা স্ক্রিপ্ট চালাতে ব্যবহৃত হয়। এটি আপনাকে বিভিন্ন কমান্ড বা স্ক্রিপ্ট (যেমন Java, Shell, Batch) চালানোর সুযোগ দেয় এবং এর আউটপুটকে বিল্ড প্রক্রিয়ার অংশ হিসেবে অন্তর্ভুক্ত করতে সহায়তা করে। spawn
, failonerror
, এবং verbose
সহ বিভিন্ন অ্যাট্রিবিউট ব্যবহার করে <exec>
টাস্ককে আরও কাস্টমাইজ করা যায়, যা আপনাকে বাহ্যিক প্রোগ্রাম বা স্ক্রিপ্টের কার্যক্রমে আরও নিয়ন্ত্রণ প্রদান করে।
common.read_more